/*
 * Classe que irá auxiliar no Ataque dos Robôs!
 */

package robocode.rescue.features;

import java.rmi.RemoteException;
import robocode.rescue.RobotInfo;
import robocode.rescue.interfaces.RMIRobotInterface;

/**
 *
 * @author Estevan
 */
public class RoboAtaque {
    
    /**
     *  ATRIBUTOS ATAQUE!!!
     */
    private double[] distanciaAnterior;
    private double[] distanciaAtual;
    
    private int countParado = 0;
    
    /**
     *  CONSTRUTORA!
     */
    public RoboAtaque() {
        
        this.distanciaAnterior = new double[5];
        this.distanciaAtual    = new double[5];
    }
    
    /**
     * Métodos!
     */
    /**
     * Método para verificar se o robô está parado!!!
     * Caso esteja parado o robô deverá virar o ângulo...
     */
    public void roboBloqueado(RobotInfo robo, RMIRobotInterface roboInt) throws RemoteException{
        
        System.out.println("robô parado: "+robo.getName()+" valor count: "+this.countParado);
        
        //se a velocidade do robô for maior que zero ele irá zerar o contador.
        if(robo.getVelocity() == 0){
            this.countParado++;
        }
        
        //se o countParado for maior que 10 - número escolhido aleatóriamente - o robô vai executar o método de dar ré.
        if(this.countParado > 50){
            roboInt.turnLeft(65);
            roboInt.ahead(50);
            System.out.println(robo.getName()+" -> VIRANDOOOO!");
            this.countParado = 0;
            System.out.println("zerou!");
        }
    }

    /**
     *  GETTERS E SETTERS
     */
    public double[] getDistanciaAnterior() {
        return distanciaAnterior;
    }

    public void setDistanciaAnterior(double[] distanciaAnterior) {
        this.distanciaAnterior = distanciaAnterior;
    }

    public double[] getDistanciaAtual() {
        return distanciaAtual;
    }

    public void setDistanciaAtual(double[] distanciaAtual) {
        this.distanciaAtual = distanciaAtual;
    }

}
